#ifndef MLEXPERIMENT
#define MLEXPERIMENT


#include <string>
#include <iostream>



// Функция LoadPatterns должна быть вызвана раньше, чем
// Experiment и CreateMLDataHeader. Она загружает из папки directory файлы,
// которые используются для проверки конфигурационных yml-файлов на корректность

void LoadPatterns(std::string directory);




// Функция Experiment запускает эксперимент. Входные параметры:
//  - benchmarkFilename - путь к бенчмарку
//  - log - сюда выводится информация о ходе эксперимента
//  - printCVErrors - определяет, будет ли в поток log выведена информация о ходе кросс-валидации
//
// Предварительно нужно вызвать LoadPatterns

void Experiment(std::string benchmarkFilename, std::ostream& log,
				bool printCVErrors = false);




// Функция CreateMLDataHeader для файла с данными создает
// header-файл. Файл с данными должен быть в формате csv, чтобы его можно было загрузить
// функцией CvMLData::read_csv из OpenCV
//  - csvFilename - путь к файлу с данными
//
// Предварительно нужно вызвать LoadPatterns

int CreateMLDataHeader(std::string csvFilename);


#endif //MLEXPERIMENT



